package com.xinzhi.controller;

import com.xinzhi.pojo.dto.UserDetailsUpdateRequest;
import com.xinzhi.service.impl.UpdateUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/users")
public class UpdateUserController {

    @Autowired
    private UpdateUserService userService;
/**
     * 根据电话号码更新用户信息
 *
     * @param userDetails 包含用户信息的请求体
 *
     * @return 成功或失败的消息
 *
     * @throws IllegalArgumentException 如果用户信息无效
 *
     * @apiNote 该方法用于根据电话号码更新用户信息。
 *
     * @pathParam 电话号码
 *
     * @requestBody 包含用户信息的请求体
 *
     * @response 成功或失败的消息
 *
     * @exception 用户信息无效时抛出异常
     */
    @PostMapping("/byPhone")
    public ResponseEntity<?> updateUserDetailsByPhone(@RequestBody UserDetailsUpdateRequest userDetails) {
        try {
            userService.updateUserInfo(userDetails);
            return ResponseEntity.ok("用户信息更新成功");
        } catch (IllegalArgumentException e) {
            return ResponseEntity.badRequest().body(e.getMessage());
        }
    }
}
